﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Domain.Model;
using Domain.Model.Domain_Personal;

namespace Domain.Interface
{
    public interface IMyKaoHeBiao : IDependency
    {
        /// <summary>
        /// 创建考核表
        /// </summary>
        /// <param name="username"></param>
        /// <param name="sssj"></param>
        string CreateMyKaoHeBiao(string username, string sssj);
        /// <summary>
        /// 获取所有考核表
        /// </summary>
        /// <param name="username"></param>
        /// <param name="state">考核表状态</param>
        /// <returns></returns>
        string GetMyKaoHeBiaos(string username);
        /// <summary>
        /// 删除考核表
        /// </summary>
        /// <param name="khbid"></param>
        void DelMyKaoHeBiao(int khbid);
        /// <summary>
        /// 获取考核表详细
        /// </summary>
        /// <param name="khbid"></param>
        /// <returns></returns>
        string GetMyKaoHeBiaoInfo(int khbid);
        /// <summary>
        /// 更新考核表状态
        /// </summary>
        /// <param name="username"></param>
        /// <param name="khbid"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        string UpdateMyKaoHeBiaoState(string username, int khbid, int state,string yijian="");
        /// <summary>
        /// 创建我的任务
        /// </summary>
        /// <returns></returns>
        string CreateMyKaoHeBiaoContent(Domain_PersonalContent model, int mkhbid, int pathid, string username);
        /// <summary>
        /// 修改我的任务
        /// </summary>
        /// <returns></returns>
        string UpdateMyKaoHeBiaoContent(Domain_PersonalContent model, int mkhbid, int pathid, string username);
        /// <summary>
        /// 删除我的任务
        /// </summary>
        void DelMyKaoHeBiaoContent(int contentid, int mkhbid, int pathid, string username);
        /// <summary>
        /// 关联相关工作
        /// </summary>
        /// <param name="selfid">本身contentID</param>
        /// <param name="RelevantWork">上级contentID</param>
        /// <param name="mkhbid"></param>
        /// <param name="pathid"></param>
        /// <param name="username"></param>
        /// <returns></returns>
        string UpdateRelevantWork(int selfid, int RelevantWorkId, int mkhbid, int pathid, string username);
        /// <summary>
        /// 取消关联工作关系
        /// </summary>
        /// <param name="xggzid">相关工作ID</param>
        /// <param name="RelevantWork"></param>
        /// <param name="mkhbid"></param>
        /// <param name="pathid"></param>
        /// <param name="username"></param>
        void DelRelevantWork(int xggzid, int RelevantWorkId, int mkhbid, int pathid, string username);
        /// <summary>
        /// 创建临时工作
        /// </summary>
        /// <param name="username"></param>
        /// <param name="gznr"></param>
        /// <param name="gzbz"></param>
        void CreateLinShiGongZuo(string username, string gznr, string gzbz, int mkhbid);

        /// <summary>
        /// 删除临时项
        /// </summary>
        /// <param name="mkhbid"></param>
        /// <param name="twoid"></param>
        void DelLinShiGongZuo(int mkhbid, int twoid);
        /// <summary>
        /// 上传附件
        /// </summary>
        /// <param name="mkhbid"></param>
        /// <param name="twoid"></param>
        /// <param name="fjmc"></param>
        /// <param name="path"></param>
        void UploadFile(int mkhbid, int twoid, string fjmc, string path, string fileHash, string fileguid);
        /// <summary>
        /// 删除附件
        /// </summary>
        /// <param name="mkhbid"></param>
        /// <param name="twoid"></param>
        /// <param name="fjid"></param>
        void DelUploadFile(int mkhbid, int twoid, int fjid);
        /// <summary>
        /// 获取附件列表
        /// </summary>
        /// <param name="mkhbid"></param>
        /// <param name="twoid"></param>
        /// <returns></returns>
        string GetFileList(int mkhbid, int twoid);
        /// <summary>
        /// 获取没有分配周数的月工作计划
        /// </summary>
        /// <param name="khbid"></param>
        /// <returns></returns>
        string 获取没有分配周数的月工作计划(int khbid);
        /// <summary>
        /// 获取已分配周数的周计划
        /// </summary>
        /// <param name="khbid"></param>
        /// <param name="周数"></param>
        /// <returns></returns>
        string 获取已分配周数的周计划(int khbid, int 周数);
        /// <summary>
        /// 生成单条周计划
        /// </summary>
        /// <param name="khbid"></param>
        /// <param name="twoid"></param>
        /// <param name="周数"></param>
        void 生成单条周计划(int khbid, int twoid, int 周数);
        /// <summary>
        /// 取消单条周计划
        /// </summary>
        /// <param name="khbid"></param>
        /// <param name="twoid"></param>
        /// <param name="周数"></param>
        void 取消单条周计划(int khbid, int twoid, int 周数);
        /// <summary>
        /// 更新工作计划完成情况
        /// </summary>
        /// <param name="khbid"></param>
        /// <param name="twoid"></param>
        /// <param name="flag"></param>
        void 更新工作计划完成情况(int khbid, int twoid, bool flag);
        /// <summary>
        /// 添加月工作总结
        /// </summary>
        /// <param name="khbid"></param>
        /// <param name="总结类型"></param>
        /// <param name="内容"></param>
        void 添加月工作总结(int khbid, int 总结类型, string 内容);
        /// <summary>
        /// 删除月工作总结
        /// </summary>
        /// <param name="khbid"></param>
        /// <param name="总结Id"></param>
        void 删除月工作总结(int khbid, int 总结Id);
        /// <summary>
        /// 修改月工作总结
        /// </summary>
        /// <param name="khbid"></param>
        /// <param name="总结Id"></param>
        /// <param name="内容"></param>
        /// <param name="总结类型"></param>
        void 修改月工作总结(int khbid, int 总结Id, string 内容, int 总结类型);
        /// <summary>
        /// 获取月工作总结
        /// </summary>
        /// <param name="khbid"></param>
        /// <param name="总结Id"></param>
        /// <returns></returns>
        string 获取月工作总结(int khbid, int 总结Id);
        /// <summary>
        /// 获取月工作总结集
        /// </summary>
        /// <param name="khbid"></param>
        /// <returns></returns>
        string 获取月工作总结集(int khbid);

        /// <summary>
        /// 获取工作承担人
        /// </summary>
        /// <param name="username">获取者账号</param>
        /// <returns></returns>
        List<dynamic> getGongZuoChengDanRen(string username);
        /// <summary>
        /// 更改考核表状态
        /// </summary>
        /// <param name="khbid">考核表ID</param>
        /// <param name="state">状态</param>
        /// <param name="cjrid">修改人Id</param>
        /// <param name="msg">信息</param>
        /// <summary>
        /// 获取历史记录
        /// </summary>
        /// <param name="userid"></param>
        /// <returns></returns>
        [Obsolete("Will be removed in next version.")]
        string GetMyLiShiKaoHeBiaos(string username);
        /// <summary>
        /// 更新考核表
        /// </summary>
        /// <param name="model"></param>
        [Obsolete("Will be removed in next version.")]
        void UpdateMyKaoHeBiao(Domain_MyKaoHeBiao model);
       
        [Obsolete("Will be removed in next version.")]
        string GetGongZuoJiHuasBymbid(int mbid);
        /// <summary>
        /// 通过审核
        /// </summary>
        /// <param name="mkhbid"></param>
        /// <param name="v"></param>
        [Obsolete("Will be removed in next version.")]
        void UpdateKaoHeBiaoZhuangTai(string username, int mkhbid, int v);
        [Obsolete("Will be removed in next version.")]
        string GetMyKaoHeBiaoBydatetime(string username, string datetimes);
        [Obsolete("Will be removed in next version.")]
        string GetMyBoHuiYiJian(string username);
        [Obsolete("Will be removed in next version.")]
        void BoHuiYiJianYiYue(int mkhbid);

        ///// <summary>
        ///// 添加考核总结内容
        ///// </summary>
        ///// <param name="zongjietow"></param>
        ///// <param name="zongjieoneid"></param>
        //void add考核总结内容(zongjietwo zongjietow ,int zongjieoneid,string username);
        ///// <summary>
        ///// 获取考核总结
        ///// </summary>
        ///// <param name="username"></param>
        ///// <param name="mkhbid">我的考核表Id</param>
        ///// <returns></returns>
        //string get获取考核总结(string username, int mkhbid);

        //void update更新考核总结(int zongjietoid,zongjietwo zongjietow, string username);
        //void del删除考核总结(int zongjietowid, string username);
     
        //string 保存周计划添加0分任务(Domain_MyKaoHeBiaotwo model, int mkhbid, int oneid, string username);
        //void 更新周计划添加0分任务(Domain_MyKaoHeBiaotwo tow, string username);
        //void 删除周计划添加0分任务(int towid, string username);
       
    }
}
